package com.iris.live.services.services;

import com.iris.live.services.models.RequestBase;
import com.iris.live.services.models.ResultData;

import java.io.OutputStream;
import java.util.Map;

/**
 * 财务系统对接模块(退票模块)--业务层
 */
public interface FinanceReturnTicketService {

    /**
     * 退票列表分页数据
     * @param request
     * @return
     */
    ResultData getReturnTicketForPage(ReturnTicketPageRequest request);

    /**
     * 退票操作
     * @param params
     * @return
     */
    ResultData refundTicket(ReturnTicketRequest params) throws Exception;

    /**
     * 导出退票列表数据
     * @param permit
     * @param map
     * @param request
     * @param outputStream
     */
    void exportReturnTicketList(String permit, Map map, RequestBase request, OutputStream outputStream);


    /**
     * 分页参数封装
     */
    static class ReturnTicketPageRequest extends RequestBase{
        public String permit; // 许可
        public String orderType; // 订单类型
        public String vin; // 车架号
        public String leaveCarState; // 交车状态
        public String identityNumber; // 身份证
        public String orderNumber; // 订单号
        public String customerName; // 客户姓名
        public String customerPhone; // 联系电话
        public String invoiceItem; // 发票项目
        public String invoiceType; // 发票类型
        public String registerNumber; // 登记单号
        public String invoiceNumber; // 发票号
        public String isRed; // 是否红冲
    }

    static class ReturnTicketRequest {
        public String permit; // 许可
        public String user; // 用户
        public Integer financeDetailNumber; // 账目编号
        public String returnTicketDate; // 红冲日期
    }


}
